Skip to main content

Mongo

El componente MongoDB funciona como la base de datos documental del sistema ASPA. A diferencia del motor geoespacial, este servicio está orientado a la gestión ágil del estado de la aplicación, el seguimiento asíncrono de los cálculos y la administración de la plataforma.

Funcionalidad

Su propósito principal es actuar como el registro vital y administrativo del sistema:

  • Seguimiento de procesos (Jobs): Su mayor fortaleza es la creación y monitorización del ciclo de vida de los jobs. Al ser una base de datos ágil, permite actualizaciones constantes y concurrentes del estado de progreso del job, reportado por el Worker y orquestado por el Back Node.
  • Persistencia de configuración: Almacena la información administrativa del ecosistema, como los usuarios con acceso a la plataforma y el catálogo de conjuntos de datos disponibles para operar.

Estructura de datos

El modelo documental permite almacenar la información en estructuras flexibles (tipo JSON), organizadas principalmente en las siguientes colecciones:

  • Usuarios: Credenciales, perfiles y permisos de acceso al sistema.
  • Datasets: Registro y metadatos de los escenarios de datos disponibles (por ejemplo, matrices de días laborales frente a fines de semana).
  • Jobs: Estructura fundamental para cada petición de cálculo, que encapsula:
    • FilterPayload: Los parámetros y filtros exactos que el usuario ha solicitado.
    • Estado: La fase actual del procesamiento.
    • Resultado: La referencia, metadatos o ruta del archivo generado para su descarga o visualización.

Detalles técnicos y arquitectura

  • Naturaleza del motor: Base de datos NoSQL orientada a documentos. Su esquema dinámico es ideal para almacenar estructuras variables como el estado de la consulta, el cual cambia a lo largo de la ejecución de la consulta.
  • Velocidad de escritura: Su naturaleza documental permite altísimas tasas de escritura y lectura, lo cual es un requisito indispensable para actualizar en tiempo real el estado de los jobs concurrentes sin generar bloqueos en el sistema.